Intermediate devices (e.g., middleboxes) provide network services such as load balancing, firewalling, network address translation, etc. by transforming, filtering, or otherwise manipulating network traffic (e.g., data flows) they receive. Intermediate devices provide these network services by identifying different flows to which data packets belong. For example, each data flow, in TCP/IP networking, is identified by examining the five-tuple of the packet headers (i.e., source IP address, destination IP address, source transport port number, destination transport port number, and transport protocol). The network service provided by an intermediate device through examination of the five-tuple is called a Five-Tuple Service (FTS). To provide an FTS, the intermediate device needs to process the IP header's different fields, such as the Options filed, as well as other fields in the protocol layer (e.g., UDP, TCP, etc.) header of each packet to identify the five-tuple. Each packet of a data flow has an Options field in its IP header, the length of which is variable depending on how many options the data flow may contain.
This method of identifying to which data flow a packet belongs could be undesirable since (i) the IP header Option field's length is variable and (ii) when there is packet fragmentation, the fragmented packets do not contain protocol layers. Traditionally, these challenges have been addressed by providing only Three-Tuple Services (TTS) at a higher granularity on 3-tuple flows (i.e., source IP address, destination IP address, and transport protocol). However, providing 3-tuple services have other shortcomings. For instance, a load balancer that provides a TTS, would not be able to distinguish between different data flows that are originated from the same source endpoint and destined to a same destination endpoint. It is very much possible for such a load balancer, therefore, to direct all the different data flows onto a same link of the network to transmit the packets to the destination endpoint (inefficient traffic management). Moreover, in some networks, the flow source points avoid setting options and Option fields in the packets of the data flows in order to avoid the above-mentioned challenge.